home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / doom / turric03.zip / TURRIC03.ZIP / PROGS / PLAYER.QC < prev    next >
Text File  |  1997-02-06  |  33KB  |  1,126 lines

  1.  
  2. void() bubble_bob;
  3. //** PATCH_BEGIN - grap109b ****
  4. void() W_FireChain;
  5. void() player_chain5;
  6. void() player_chain4;
  7. //** PATCH_END - grap109b ******
  8.  
  9.  
  10. /*
  11. ==============================================================================
  12.  
  13. PLAYER
  14.  
  15. ==============================================================================
  16. */
  17.  
  18. $cd /raid/quake/id1/models/player_4
  19. $origin 0 -6 24
  20. $base base
  21. $skin skin
  22.  
  23. //
  24. // running
  25. //
  26. //       0      1      2      3      4      5
  27. $frame axrun1 axrun2 axrun3 axrun4 axrun5 axrun6
  28.  
  29. //       6        7         8        9       10       11
  30. $frame rockrun1 rockrun2 rockrun3 rockrun4 rockrun5 rockrun6
  31.  
  32. //
  33. // standing
  34. //
  35. //       12     13     14     15     16
  36. $frame stand1 stand2 stand3 stand4 stand5
  37.  
  38. //         17      18      19      20      21      22
  39. $frame axstnd1 axstnd2 axstnd3 axstnd4 axstnd5 axstnd6
  40. //       23      24      25      26      27       28
  41. $frame axstnd7 axstnd8 axstnd9 axstnd10 axstnd11 axstnd12
  42.  
  43.  
  44. //
  45. // pain
  46. //
  47. $frame axpain1 axpain2 axpain3 axpain4 axpain5 axpain6
  48.  
  49. $frame pain1 pain2 pain3 pain4 pain5 pain6
  50.  
  51.  
  52. //
  53. // death
  54. //
  55.  
  56. $frame axdeth1 axdeth2 axdeth3 axdeth4 axdeth5 axdeth6
  57. $frame axdeth7 axdeth8 axdeth9
  58.  
  59. $frame deatha1 deatha2 deatha3 deatha4 deatha5 deatha6 deatha7 deatha8
  60. $frame deatha9 deatha10 deatha11
  61.  
  62. $frame deathb1 deathb2 deathb3 deathb4 deathb5 deathb6 deathb7 deathb8
  63. $frame deathb9
  64.  
  65. $frame deathc1 deathc2 deathc3 deathc4 deathc5 deathc6 deathc7 deathc8
  66. $frame deathc9 deathc10 deathc11 deathc12 deathc13 deathc14 deathc15
  67.  
  68. $frame deathd1 deathd2 deathd3 deathd4 deathd5 deathd6 deathd7
  69. $frame deathd8 deathd9
  70.  
  71. $frame deathe1 deathe2 deathe3 deathe4 deathe5 deathe6 deathe7
  72. $frame deathe8 deathe9
  73.  
  74. //
  75. // attacks
  76. //
  77. $frame nailatt1 nailatt2
  78.  
  79. $frame light1 light2
  80.  
  81. $frame rockatt1 rockatt2 rockatt3 rockatt4 rockatt5 rockatt6
  82.  
  83. $frame shotatt1 shotatt2 shotatt3 shotatt4 shotatt5 shotatt6
  84.  
  85. $frame axatt1 axatt2 axatt3 axatt4 axatt5 axatt6
  86.  
  87. $frame axattb1 axattb2 axattb3 axattb4 axattb5 axattb6
  88.  
  89. $frame axattc1 axattc2 axattc3 axattc4 axattc5 axattc6
  90.  
  91. $frame axattd1 axattd2 axattd3 axattd4 axattd5 axattd6
  92.  
  93.  
  94. /*
  95. ==============================================================================
  96. PLAYER
  97. ==============================================================================
  98. */
  99.  
  100. void() player_run;
  101.  
  102. void()    player_stand1 =[    $axstnd1,    player_stand1    ]
  103. {
  104.     self.weaponframe=0;
  105.     if (self.velocity_x || self.velocity_y)
  106.     {
  107.         self.walkframe=0;
  108.         player_run();
  109.         return;
  110.     }
  111.  
  112. //** PATCH_BEGIN - morph2 ****
  113.     if (self._stand != SUB_Null)
  114.     {
  115.         self._stand();
  116.         return;
  117.     }
  118. //** PATCH_END - morph2 ******
  119.  
  120. //** PATCH_BEGIN - grap109b - throwaxe - Turrican ****
  121.     if (self.weapon == IT_AXE || self.weapon == IT_THROWING_AXE ||
  122.         self.weapon == IT_MORNINGSTAR )
  123. //** PATCH_END - grap109b - throwaxe - Turrican ******
  124.     {
  125.         if (self.walkframe >= 12)
  126.             self.walkframe = 0;
  127.         self.frame = $axstnd1 + self.walkframe;
  128.     }
  129.     else
  130.     {
  131.         if (self.walkframe >= 5)
  132.             self.walkframe = 0;
  133.         self.frame = $stand1 + self.walkframe;
  134.     }
  135.     self.walkframe = self.walkframe + 1;
  136. };
  137.  
  138. void()    player_run =[    $rockrun1,    player_run    ]
  139. {
  140.     self.weaponframe=0;
  141.     if (!self.velocity_x && !self.velocity_y)
  142.     {
  143.         self.walkframe=0;
  144.         player_stand1();
  145.         return;
  146.     }
  147.  
  148. //** PATCH_BEGIN - morph2 ****
  149.     if (self._run != SUB_Null)
  150.     {
  151.         self._run();
  152.         return;
  153.     }
  154. //** PATCH_END - morph2 ******
  155.  
  156. //** PATCH_BEGIN - grap109b - throwaxe - Turrican ****
  157.     if (self.weapon == IT_AXE || self.weapon == IT_THROWING_AXE ||
  158.         self.weapon == IT_MORNINGSTAR )
  159. //** PATCH_END - grap109b - throwaxe - Turrican ******
  160.     {
  161.         if (self.walkframe == 6)
  162.             self.walkframe = 0;
  163.         self.frame = $axrun1 + self.walkframe;
  164.     }
  165.     else
  166.     {
  167.         if (self.walkframe == 6)
  168.             self.walkframe = 0;
  169.         self.frame = self.frame + self.walkframe;
  170.     }
  171.     self.walkframe = self.walkframe + 1;
  172. };
  173.  
  174.  
  175. void()    player_shot1 =    [$shotatt1, player_shot2    ] {self.weaponframe=1;
  176. self.effects = self.effects | EF_MUZZLEFLASH;};
  177. void()    player_shot2 =    [$shotatt2, player_shot3    ] {self.weaponframe=2;};
  178. void()    player_shot3 =    [$shotatt3, player_shot4    ] {self.weaponframe=3;};
  179. void()    player_shot4 =    [$shotatt4, player_shot5    ] {self.weaponframe=4;};
  180. void()    player_shot5 =    [$shotatt5, player_shot6    ] {self.weaponframe=5;};
  181. void()    player_shot6 =    [$shotatt6, player_run    ] {self.weaponframe=6;};
  182.  
  183. //** PATCH_BEGIN - throwaxe ****
  184. void()  player_tax1 =   [$axatt1, player_tax2   ] {self.weaponframe=1;};
  185. void()  player_tax2 =   [$axatt2, player_tax3   ] {self.weaponframe=2;};
  186. void()  player_tax3 =   [$axatt3, player_tax4   ] {self.weaponframe=3;W_ThrowAxe();};
  187. void()  player_tax4 =   [$axatt4, player_run    ] {self.weaponframe=4;};
  188. //** PATCH_END - throwaxe ******
  189.  
  190. void()    player_axe1 =    [$axatt1, player_axe2    ] {self.weaponframe=1;};
  191. void()    player_axe2 =    [$axatt2, player_axe3    ] {self.weaponframe=2;};
  192. void()    player_axe3 =    [$axatt3, player_axe4    ] {self.weaponframe=3;W_FireAxe();};
  193. void()    player_axe4 =    [$axatt4, player_run    ] {self.weaponframe=4;};
  194.  
  195. void()    player_axeb1 =    [$axattb1, player_axeb2    ] {self.weaponframe=5;};
  196. void()    player_axeb2 =    [$axattb2, player_axeb3    ] {self.weaponframe=6;};
  197. void()    player_axeb3 =    [$axattb3, player_axeb4    ] {self.weaponframe=7;W_FireAxe();};
  198. void()    player_axeb4 =    [$axattb4, player_run    ] {self.weaponframe=8;};
  199.  
  200. void()    player_axec1 =    [$axattc1, player_axec2    ] {self.weaponframe=1;};
  201. void()    player_axec2 =    [$axattc2, player_axec3    ] {self.weaponframe=2;};
  202. void()    player_axec3 =    [$axattc3, player_axec4    ] {self.weaponframe=3;W_FireAxe();};
  203. void()    player_axec4 =    [$axattc4, player_run    ] {self.weaponframe=4;};
  204.  
  205. void()    player_axed1 =    [$axattd1, player_axed2    ] {self.weaponframe=5;};
  206. void()    player_axed2 =    [$axattd2, player_axed3    ] {self.weaponframe=6;};
  207. void()    player_axed3 =    [$axattd3, player_axed4    ] {self.weaponframe=7;W_FireAxe();};
  208. void()    player_axed4 =    [$axattd4, player_run    ] {self.weaponframe=8;};
  209.  
  210. //** PATCH_BEGIN - grap109b ****
  211. //void()  player_chain1=  [$axattd1, player_chain2 ] {self.weaponframe=1;};
  212.  
  213. void()  player_chain1=  [$axattd1, player_chain2 ] {self.weaponframe=2;};
  214. void()  player_chain2=  [$axattd2, player_chain3 ] {self.weaponframe=3;W_FireChain();};
  215.  
  216. void()  player_chain3=  [$axattd3, player_chain3 ]
  217. {
  218.         self.weaponframe=3;
  219.         if (!self.hook_out)
  220.         {
  221.                 player_chain5();
  222.                 return;
  223.         }
  224.         if (vlen(self.velocity) >= 750)
  225.         {
  226.                 player_chain4();
  227.                 return;
  228.         }
  229. };
  230.  
  231. void() player_chain4=  [$deathc4, player_chain4 ]
  232. {
  233.         self.weaponframe=4;
  234.         if (!self.hook_out)
  235.         {
  236.                 player_chain5();
  237.                 return;
  238.         }
  239.         if (vlen(self.velocity) < 750)
  240.         {
  241.                 player_chain3();
  242.                 return;
  243.         }
  244. };
  245.  
  246. void()  player_chain5=  [$axattd4, player_run    ] {self.weaponframe=5;};
  247. //** PATCH_END - grap109b ******
  248.  
  249. //============================================================================
  250.  
  251. void() player_nail1   =[$nailatt1, player_nail2  ]
  252. {
  253.     self.effects = self.effects | EF_MUZZLEFLASH;
  254.  
  255.     if (!self.button0)
  256.         {player_run ();return;}
  257.     self.weaponframe = self.weaponframe + 1;
  258.     if (self.weaponframe == 9)
  259.         self.weaponframe = 1;
  260.     SuperDamageSound();
  261.     W_FireSpikes (4);
  262.     self.attack_finished = time + 0.2;
  263. };
  264. void() player_nail2   =[$nailatt2, player_nail1  ]
  265. {
  266.     self.effects = self.effects | EF_MUZZLEFLASH;
  267.  
  268.     if (!self.button0)
  269.         {player_run ();return;}
  270.     self.weaponframe = self.weaponframe + 1;
  271.     if (self.weaponframe == 9)
  272.         self.weaponframe = 1;
  273.     SuperDamageSound();
  274.     W_FireSpikes (-4);
  275.     self.attack_finished = time + 0.2;
  276. };
  277.  
  278. //============================================================================
  279.  
  280. void() player_light1   =[$light1, player_light2  ] 
  281. {
  282.     self.effects = self.effects | EF_MUZZLEFLASH;
  283.  
  284.     if (!self.button0)
  285.         {player_run ();return;}
  286.     self.weaponframe = self.weaponframe + 1;
  287.     if (self.weaponframe == 5)
  288.         self.weaponframe = 1;
  289.     SuperDamageSound();
  290. //** PATCH_BEGIN - tracbeam - Turrican ****
  291.     if (self.weapon == IT_TRACTOR_BEAM)
  292.         W_FireTracbeam();
  293.     else
  294.         W_FireLightning();
  295. //** PATCH_END - tracbeam - Turrican ******
  296.     self.attack_finished = time + 0.2;
  297. };
  298. void() player_light2   =[$light2, player_light1  ]
  299. {
  300.     self.effects = self.effects | EF_MUZZLEFLASH;
  301.  
  302.     if (!self.button0)
  303.         {player_run ();return;}
  304.     self.weaponframe = self.weaponframe + 1;
  305.     if (self.weaponframe == 5)
  306.         self.weaponframe = 1;
  307.     SuperDamageSound();
  308. //** PATCH_BEGIN - tracbeam - Turrican ****
  309.     if (self.weapon == IT_TRACTOR_BEAM)
  310.         W_FireTracbeam();
  311.     else
  312.         W_FireLightning();
  313. //** PATCH_END - tracbeam - Turrican ******
  314.     self.attack_finished = time + 0.2;
  315. };
  316.  
  317. //============================================================================
  318.  
  319.  
  320. void() player_rocket1   =[$rockatt1, player_rocket2  ] {self.weaponframe=1;
  321. self.effects = self.effects | EF_MUZZLEFLASH;};
  322. void() player_rocket2   =[$rockatt2, player_rocket3  ] {self.weaponframe=2;};
  323. void() player_rocket3   =[$rockatt3, player_rocket4  ] {self.weaponframe=3;};
  324. void() player_rocket4   =[$rockatt4, player_rocket5  ] {self.weaponframe=4;};
  325. void() player_rocket5   =[$rockatt5, player_rocket6  ] {self.weaponframe=5;};
  326. void() player_rocket6   =[$rockatt6, player_run  ] {self.weaponframe=6;};
  327. void(float num_bubbles) DeathBubbles;
  328.  
  329. void() PainSound =
  330. {
  331. local float        rs;
  332.  
  333. //** PATCH_BEGIN - throwaxe ****
  334. local float     which_hit;
  335. //** PATCH_END - throwaxe ******
  336. //** PATCH_BEGIN - morph2 - Turrican ****
  337. local string    teledeath_sound;
  338. local string    drown_sound1, drown_sound2;
  339. local string    burn_sound1, burn_sound2;
  340. local string    axehit_sound1, axehit_sound2, axehit_sound3;
  341. local string    pain_sound1, pain_sound2, pain_sound3, pain_sound4,
  342.                 pain_sound5, pain_sound6;
  343.  
  344.     if (self.health < 0)
  345.         return;
  346.  
  347. //    Pain sounds depend on self.morphnum
  348.     if (self.morphnum == 1)    // zombie morph
  349.     {
  350.         teledeath_sound = "player/teledth1.wav";
  351.         drown_sound1 = "zombie/z_pain.wav";
  352.         drown_sound2 = "zombie/z_pain1.wav";
  353.         burn_sound1 = "zombie/z_pain.wav";
  354.         burn_sound2 = "zombie/z_pain1.wav";
  355.         axehit_sound1 = "zombie/z_pain.wav";
  356.         axehit_sound2 = "zombie/z_pain1.wav";
  357.         axehit_sound3 = "zombie/z_idle.wav";
  358.         pain_sound1 = "zombie/z_pain.wav";
  359.         pain_sound2 = "zombie/z_pain.wav";
  360.         pain_sound3 = "zombie/z_pain1.wav";
  361.         pain_sound4 = "zombie/z_idle.wav";
  362.         pain_sound5 = "zombie/z_idle1.wav";
  363.         pain_sound6 = "zombie/z_idle_1.wav";
  364.     }
  365.     else if (self.morphnum == 2)    // shalrath morph
  366.     {
  367.         teledeath_sound = "player/teledth1.wav";
  368.         drown_sound1 = "shalrath/pain.wav";
  369.         drown_sound2 = "shalrath/pain.wav";
  370.         burn_sound1 = "shalrath/pain.wav";
  371.         burn_sound2 = "shalrath/sight.wav";
  372.         axehit_sound1 = "shalrath/pain.wav";
  373.         axehit_sound2 = "shalrath/sight.wav";
  374.         axehit_sound3 = "shalrath/idle.wav";
  375.         pain_sound1 = "shalrath/pain.wav";
  376.         pain_sound2 = "shalrath/pain.wav";
  377.         pain_sound3 = "shalrath/sight.wav";
  378.         pain_sound4 = "shalrath/sight.wav";
  379.         pain_sound5 = "shalrath/idle.wav";
  380.         pain_sound6 = "shalrath/idle.wav";
  381.     }
  382.     else if (self.morphnum == 3)    // wizard morph
  383.     {
  384.         teledeath_sound = "player/teledth1.wav";
  385.         drown_sound1 = "wizard/wpain.wav";
  386.         drown_sound2 = "wizard/wsight.wav";
  387.         burn_sound1 = "wizard/wpain.wav";
  388.         burn_sound2 = "wizard/wsight.wav";
  389.         axehit_sound1 = "wizard/wpain.wav";
  390.         axehit_sound2 = "wizard/wsight.wav";
  391.         axehit_sound3 = "wizard/widle2.wav";
  392.         pain_sound1 = "wizard/wpain.wav";
  393.         pain_sound2 = "wizard/wpain.wav";
  394.         pain_sound3 = "wizard/wsight.wav";
  395.         pain_sound4 = "wizard/wsight.wav";
  396.         pain_sound5 = "wizard/widle1.wav";
  397.         pain_sound6 = "wizard/widle2.wav";
  398.     }
  399.     else if (self.morphnum == 4)    // hell knight morph
  400.     {
  401.         teledeath_sound = "player/teledth1.wav";
  402.         drown_sound1 = "hknight/grunt.wav";
  403.         drown_sound2 = "hknight/grunt.wav";
  404.         burn_sound1 = "hknight/grunt.wav";
  405.         burn_sound2 = "hknight/grunt.wav";
  406.         axehit_sound1 = "hknight/pain1.wav";
  407.         axehit_sound2 = "hknight/grunt.wav";
  408.         axehit_sound3 = "hknight/idle.wav";
  409.         pain_sound1 = "hknight/pain1.wav";
  410.         pain_sound2 = "hknight/pain1.wav";
  411.         pain_sound3 = "hknight/grunt.wav";
  412.         pain_sound4 = "hknight/grunt.wav";
  413.         pain_sound5 = "hknight/idle.wav";
  414.         pain_sound6 = "hknight/idle.wav";
  415.     }
  416.     else if (self.morphnum == 5)    // shambler morph
  417.     {
  418.         teledeath_sound = "player/teledth1.wav";
  419.         drown_sound1 = "shambler/shurt2.wav";
  420.         drown_sound2 = "shambler/sidle.wav";
  421.         burn_sound1 = "shambler/shurt2.wav";
  422.         burn_sound2 = "shambler/sidle.wav";
  423.         axehit_sound1 = "shambler/shurt2.wav";
  424.         axehit_sound2 = "shambler/sidle.wav";
  425.         axehit_sound3 = "shambler/ssight.wav";
  426.         pain_sound1 = "shambler/shurt2.wav";
  427.         pain_sound2 = "shambler/shurt2.wav";
  428.         pain_sound3 = "shambler/sidle.wav";
  429.         pain_sound4 = "shambler/sidle.wav";
  430.         pain_sound5 = "shambler/ssight.wav";
  431.         pain_sound6 = "shambler/ssight.wav";
  432.     }
  433.     else if (self.morphnum == 6)    // demon morph
  434.     {
  435.         teledeath_sound = "player/teledth1.wav";
  436.         drown_sound1 = "demon/dgrowl.wav";
  437.         drown_sound2 = "demon/idle1.wav";
  438.         burn_sound1 = "demon/dgrowl.wav";
  439.         burn_sound2 = "demon/idle1.wav";
  440.         axehit_sound1 = "demon/dpain1.wav";
  441.         axehit_sound2 = "demon/idle1.wav";
  442.         axehit_sound3 = "demon/dgrowl.wav";
  443.         pain_sound1 = "demon/dpain1.wav";
  444.         pain_sound2 = "demon/dpain1.wav";
  445.         pain_sound3 = "demon/idle1.wav";
  446.         pain_sound4 = "demon/idle1.wav";
  447.         pain_sound5 = "demon/dgrowl.wav";
  448.         pain_sound6 = "demon/dgrowl.wav";
  449.     }
  450.     else if (self.morphnum == 7)    // ogre morph
  451.     {
  452.         teledeath_sound = "player/teledth1.wav";
  453.         drown_sound1 = "ogre/ogpain1.wav";
  454.         drown_sound2 = "ogre/ogidle2.wav";
  455.         burn_sound1 = "ogre/ogpain1.wav";
  456.         burn_sound2 = "ogre/ogidle2.wav";
  457.         axehit_sound1 = "ogre/ogpain1.wav";
  458.         axehit_sound2 = "ogre/ogidle2.wav";
  459.         axehit_sound3 = "ogre/ogidle2.wav";
  460.         pain_sound1 = "ogre/ogpain1.wav";
  461.         pain_sound2 = "ogre/ogpain1.wav";
  462.         pain_sound3 = "ogre/ogpain1.wav";
  463.         pain_sound4 = "ogre/ogidle2.wav";
  464.         pain_sound5 = "ogre/ogidle2.wav";
  465.         pain_sound6 = "ogre/ogidle2.wav";
  466.     }
  467.     else    // human morph
  468.     {
  469.         teledeath_sound = "player/teledth1.wav";
  470.         drown_sound1 = "player/drown1.wav";
  471.         drown_sound2 = "player/drown2.wav";
  472.         burn_sound1 = "player/lburn1.wav";
  473.         burn_sound2 = "player/lburn2.wav";
  474.         axehit_sound1 = "weapons/taxhit1.wav";
  475.         axehit_sound2 = "weapons/taxhit2.wav";
  476.         axehit_sound3 = "weapons/taxhit3.wav";
  477.         pain_sound1 = "player/pain1.wav";
  478.         pain_sound2 = "player/pain2.wav";
  479.         pain_sound3 = "player/pain3.wav";
  480.         pain_sound4 = "player/pain4.wav";
  481.         pain_sound5 = "player/pain5.wav";
  482.         pain_sound6 = "player/pain6.wav";
  483.     }
  484.  
  485.     if (damage_attacker.classname == "teledeath")
  486.     {
  487.         sound (self, CHAN_VOICE, teledeath_sound, 1, ATTN_NONE);
  488.         return;
  489.     }
  490.  
  491. // water pain sounds
  492.     if (self.watertype == CONTENT_WATER && self.waterlevel == 3)
  493.     {
  494.         DeathBubbles(1);
  495.         if (random() > 0.5)
  496.             sound (self, CHAN_VOICE, drown_sound1, 1, ATTN_NORM);
  497.         else
  498.             sound (self, CHAN_VOICE, drown_sound2, 1, ATTN_NORM);
  499.         return;
  500.     }
  501.  
  502. // slime pain sounds
  503.     if (self.watertype == CONTENT_SLIME)
  504.     {
  505. // FIX ME    put in some steam here
  506.         if (random() > 0.5)
  507.             sound (self, CHAN_VOICE, burn_sound1, 1, ATTN_NORM);
  508.         else
  509.             sound (self, CHAN_VOICE, burn_sound2, 1, ATTN_NORM);
  510.         return;
  511.     }
  512.  
  513.     if (self.watertype == CONTENT_LAVA)
  514.     {
  515.         if (random() > 0.5)
  516.             sound (self, CHAN_VOICE, burn_sound1, 1, ATTN_NORM);
  517.         else
  518.             sound (self, CHAN_VOICE, burn_sound2, 1, ATTN_NORM);
  519.         return;
  520.     }
  521.  
  522. // don't make multiple pain sounds right after each other
  523.     if (self.pain_finished > time)
  524.     {
  525.         self.axhitme = 0;
  526.         return;
  527.     }
  528.     self.pain_finished = time + 0.5;
  529.  
  530. // ax pain sound
  531.     if (self.axhitme == 1)
  532.     {
  533.         self.axhitme = 0;
  534. //** PATCH_BEGIN - throwaxe ****
  535. //        sound (self, CHAN_VOICE, "player/axhit1.wav", 1, ATTN_NORM);
  536.         which_hit = random();
  537.         if (which_hit < 0.33)
  538.             sound (self, CHAN_VOICE, axehit_sound1, 1, ATTN_NORM);
  539.         else if (which_hit < 0.66)
  540.             sound (self, CHAN_VOICE, axehit_sound2, 1, ATTN_NORM);
  541.         else
  542.             sound (self, CHAN_VOICE, axehit_sound3, 1, ATTN_NORM);
  543. //** PATCH_END - throwaxe ******
  544.         return;
  545.     }
  546.  
  547.  
  548.     rs = rint((random() * 5) + 1);
  549.  
  550.     self.noise = "";
  551.     if (rs == 1)
  552.         self.noise = pain_sound1;
  553.     else if (rs == 2)
  554.         self.noise = pain_sound2;
  555.     else if (rs == 3)
  556.         self.noise = pain_sound3;
  557.     else if (rs == 4)
  558.         self.noise = pain_sound4;
  559.     else if (rs == 5)
  560.         self.noise = pain_sound5;
  561.     else
  562.         self.noise = pain_sound6;
  563.  
  564. //** PATCH_END - morph2 - Turrican ******
  565.  
  566.     sound (self, CHAN_VOICE, self.noise, 1, ATTN_NORM);
  567.     return;
  568. };
  569.  
  570. void()    player_pain1 =    [    $pain1,    player_pain2    ] {PainSound();self.weaponframe=0;};
  571. void()    player_pain2 =    [    $pain2,    player_pain3    ] {};
  572. void()    player_pain3 =    [    $pain3,    player_pain4    ] {};
  573. void()    player_pain4 =    [    $pain4,    player_pain5    ] {};
  574. void()    player_pain5 =    [    $pain5,    player_pain6    ] {};
  575. void()    player_pain6 =    [    $pain6,    player_run    ] {};
  576.  
  577. void()    player_axpain1 =    [    $axpain1,    player_axpain2    ] {PainSound();self.weaponframe=0;};
  578. void()    player_axpain2 =    [    $axpain2,    player_axpain3    ] {};
  579. void()    player_axpain3 =    [    $axpain3,    player_axpain4    ] {};
  580. void()    player_axpain4 =    [    $axpain4,    player_axpain5    ] {};
  581. void()    player_axpain5 =    [    $axpain5,    player_axpain6    ] {};
  582. void()    player_axpain6 =    [    $axpain6,    player_run    ] {};
  583.  
  584. //** PATCH_BEGIN - morph2 ****
  585. //void() player_pain =
  586. void(entity attacker, float take) player_pain =
  587. {
  588.     if (self._pain != SUB_Null)
  589.     {
  590.         self._pain(attacker, take);
  591.         return;
  592.     }
  593. //** PATCH_END - morph2 ******
  594.  
  595.     if (self.weaponframe)
  596.         return;
  597.  
  598.     if (self.invisible_finished > time)
  599.         return;        // eyes don't have pain frames
  600.  
  601. //** PATCH_BEGIN - grap109b - throwaxe - Turrican ****
  602.     if (self.weapon == IT_AXE || self.weapon == IT_THROWING_AXE ||
  603.         self.weapon == IT_MORNINGSTAR )
  604. //** PATCH_END - grap109b - throwaxe - Turrican ******
  605.         player_axpain1 ();
  606.     else
  607.         player_pain1 ();
  608. };
  609.  
  610. void() player_diea1;
  611. void() player_dieb1;
  612. void() player_diec1;
  613. void() player_died1;
  614. void() player_diee1;
  615. void() player_die_ax1;
  616.  
  617. void() DeathBubblesSpawn =
  618. {
  619. local entity    bubble;
  620.     if (self.owner.waterlevel != 3)
  621.         return;
  622.     bubble = spawn();
  623.     setmodel (bubble, "progs/s_bubble.spr");
  624.     setorigin (bubble, self.owner.origin + '0 0 24');
  625.     bubble.movetype = MOVETYPE_NOCLIP;
  626.     bubble.solid = SOLID_NOT;
  627.     bubble.velocity = '0 0 15';
  628.     bubble.nextthink = time + 0.5;
  629.     bubble.think = bubble_bob;
  630.     bubble.classname = "bubble";
  631.     bubble.frame = 0;
  632.     bubble.cnt = 0;
  633.     setsize (bubble, '-8 -8 -8', '8 8 8');
  634.     self.nextthink = time + 0.1;
  635.     self.think = DeathBubblesSpawn;
  636.     self.air_finished = self.air_finished + 1;
  637.     if (self.air_finished >= self.bubble_count)
  638.         remove(self);
  639. };
  640.  
  641. void(float num_bubbles) DeathBubbles =
  642. {
  643. local entity    bubble_spawner;
  644.  
  645.     bubble_spawner = spawn();
  646.     setorigin (bubble_spawner, self.origin);
  647.     bubble_spawner.movetype = MOVETYPE_NONE;
  648.     bubble_spawner.solid = SOLID_NOT;
  649.     bubble_spawner.nextthink = time + 0.1;
  650.     bubble_spawner.think = DeathBubblesSpawn;
  651.     bubble_spawner.air_finished = 0;
  652.     bubble_spawner.owner = self;
  653.     bubble_spawner.bubble_count = num_bubbles;
  654.     return;
  655. };
  656.  
  657.  
  658. void() DeathSound =
  659. {
  660. local float        rs;
  661. //** PATCH_BEGIN - morph2 - Turrican ****
  662. local string    h2odeath_sound;
  663. local string    death_sound1, death_sound2, death_sound3, death_sound4,
  664.                 death_sound5;
  665. //    Death sounds depend on self.morphnum
  666. // zombies die only from being gibbed.
  667.     if (self.morphnum == 2)    // shalrath morph
  668.     {
  669.         h2odeath_sound = "shalrath/death.wav";
  670.         death_sound1 = "shalrath/death.wav";
  671.         death_sound2 = "shalrath/death.wav";
  672.         death_sound3 = "shalrath/death.wav";
  673.         death_sound4 = "shalrath/death.wav";
  674.         death_sound5 = "shalrath/death.wav";
  675.     }
  676.     else if (self.morphnum == 3)    // wizard morph
  677.     {
  678.         h2odeath_sound = "wizard/wdeath.wav";
  679.         death_sound1 = "wizard/wdeath.wav";
  680.         death_sound2 = "wizard/wdeath.wav";
  681.         death_sound3 = "wizard/wdeath.wav";
  682.         death_sound4 = "wizard/wdeath.wav";
  683.         death_sound5 = "wizard/wdeath.wav";
  684.     }
  685.     else if (self.morphnum == 4)    // hell knight morph
  686.     {
  687.         h2odeath_sound = "hknight/death1.wav";
  688.         death_sound1 = "hknight/death1.wav";
  689.         death_sound2 = "hknight/death1.wav";
  690.         death_sound3 = "hknight/death1.wav";
  691.         death_sound4 = "hknight/death1.wav";
  692.         death_sound5 = "hknight/death1.wav";
  693.     }
  694.     else if (self.morphnum == 5)    // shambler morph
  695.     {
  696.         h2odeath_sound = "shambler/sdeath.wav";
  697.         death_sound1 = "shambler/sdeath.wav";
  698.         death_sound2 = "shambler/sdeath.wav";
  699.         death_sound3 = "shambler/sdeath.wav";
  700.         death_sound4 = "shambler/sdeath.wav";
  701.         death_sound5 = "shambler/sdeath.wav";
  702.     }
  703.     else if (self.morphnum == 6)    // demon morph
  704.     {
  705.         h2odeath_sound = "demon/ddeath.wav";
  706.         death_sound1 = "demon/ddeath.wav";
  707.         death_sound2 = "demon/ddeath.wav";
  708.         death_sound3 = "demon/ddeath.wav";
  709.         death_sound4 = "demon/ddeath.wav";
  710.         death_sound5 = "demon/ddeath.wav";
  711.     }
  712.     else if (self.morphnum == 7)    // ogre morph
  713.     {
  714.         h2odeath_sound = "ogre/ogdth.wav";
  715.         death_sound1 = "ogre/ogdth.wav";
  716.         death_sound2 = "ogre/ogdth.wav";
  717.         death_sound3 = "ogre/ogdth.wav";
  718.         death_sound4 = "ogre/ogdth.wav";
  719.         death_sound5 = "ogre/ogdth.wav";
  720.     }
  721.     else     // human morph
  722.     {
  723.         h2odeath_sound = "player/h2odeath.wav";
  724.         death_sound1 = "player/death1.wav";
  725.         death_sound2 = "player/death2.wav";
  726.         death_sound3 = "player/death3.wav";
  727.         death_sound4 = "player/death4.wav";
  728.         death_sound5 = "player/death5.wav";
  729.     }
  730.  
  731.     // water death sounds
  732.  
  733.     if (self.waterlevel == 3)
  734.     {
  735.         DeathBubbles(20);
  736.         sound (self, CHAN_VOICE, h2odeath_sound, 1, ATTN_NONE);
  737.         return;
  738.     }
  739.  
  740.     rs = rint ((random() * 4) + 1);
  741.     if (rs == 1)
  742.         self.noise = death_sound1;
  743.     if (rs == 2)
  744.         self.noise = death_sound2;
  745.     if (rs == 3)
  746.         self.noise = death_sound3;
  747.     if (rs == 4)
  748.         self.noise = death_sound4;
  749.     if (rs == 5)
  750.         self.noise = death_sound5;
  751.  
  752. //** PATCH_END - morph2 - Turrican ******
  753.  
  754.     sound (self, CHAN_VOICE, self.noise, 1, ATTN_NONE);
  755.     return;
  756. };
  757.  
  758.  
  759. void() PlayerDead =
  760. {
  761.     self.nextthink = -1;
  762. // allow respawn after a certain time
  763.     self.deadflag = DEAD_DEAD;
  764. };
  765.  
  766. vector(float dm) VelocityForDamage =
  767. {
  768.     local vector v;
  769.  
  770.     v_x = 100 * crandom();
  771.     v_y = 100 * crandom();
  772.     v_z = 200 + 100 * random();
  773.  
  774.     if (dm > -50)
  775.     {
  776. //        dprint ("level 1\n");
  777.         v = v * 0.7;
  778.     }
  779.     else if (dm > -200)
  780.     {
  781. //        dprint ("level 3\n");
  782.         v = v * 2;
  783.     }
  784.     else
  785.         v = v * 10;
  786.  
  787.     return v;
  788. };
  789.  
  790. //** PATCH_BEGIN - flame thrower - Turrican ****
  791. /*void() PlayerTouch =
  792. {
  793.     if((self.onfire > 0) && (other.health > 0) && (other.onfire <= 0))
  794.     {
  795.         other.onfire = self.onfire;
  796.         self.enemy = other;
  797.         SpawnFlame(other.origin);
  798.     }
  799.  
  800. };
  801. */
  802. //** PATCH_END - flame thrower - Turrican ******
  803.  
  804. void(string gibname, float dm) ThrowGib =
  805. {
  806.     local    entity     new;
  807.  
  808. //** PATCH_BEGIN - gibbin3 - Turrican ****
  809. //** PATCH_BEGIN - temporary entity limiting - Turrican ****
  810. // To prevent packet overflows from too many gibs being created.
  811.     if (current_temp_entities < MAX_TEMP_ENTITIES)
  812.     {
  813.         current_temp_entities = current_temp_entities + 1;
  814.         new = spawn();
  815.         new.origin = self.origin;
  816.         setmodel (new, gibname);
  817.         setsize (new, '0 0 0', '0 0 0');
  818.         new.velocity = VelocityForDamage (dm) * 2;
  819.         new.movetype = MOVETYPE_BOUNCE;
  820.         new.solid = SOLID_NOT;
  821.         new.avelocity = new.velocity * 2;
  822.         new.think = MakeGibSolid;
  823.         new.ltime = time;
  824.         new.nextthink = time + 2;
  825.         new.frame = 0;
  826.         new.flags = 0;
  827.     }
  828. //** PATCH_END - temporary entity limiting - Turrican ******
  829. //** PATCH_END - gibbin3 - Turrican ******
  830. };
  831.  
  832. void(string gibname, float dm) ThrowHead =
  833. {
  834.     local    entity    head;
  835.  
  836.     if (self.classname == "player")
  837.     {
  838. // Create a head.
  839.         head = spawn();
  840.         head.solid = self.solid;
  841.         head.movetype = MOVETYPE_BOUNCE;
  842.         head.origin = self.origin;
  843.         head.angles = self.angles;
  844.         setmodel (head, gibname);
  845. //** PATCH_BEGIN - mskin12 - Turrican ****
  846.         head.skin = self.skin;
  847. //** PATCH_END - mskin12 - Turrican ******
  848.         setsize (head, '-8 -8 0', '8 8 16');
  849.         head.frame = 0;
  850.         head.classname = "gib_head";
  851.         head.takedamage = DAMAGE_YES;
  852.         head.health = HEAD_HEALTH;
  853.         head.th_pain = SUB_SmallGib;
  854.         head.th_die = Head_die;
  855.         head.touch = WalkOnCorpse;
  856.         head.velocity = VelocityForDamage (dm);
  857.         head.flags = self.flags - (self.flags & FL_ONGROUND);
  858.         head.avelocity = crandom() * '0 600 0';
  859.  
  860. // Alter self.
  861.         setmodel(self, "");
  862.         setsize (self, VEC_ORIGIN, VEC_ORIGIN);
  863.         self.solid = SOLID_NOT;
  864.         self.touch = SUB_Null;
  865.         self.takedamage = DAMAGE_NO;
  866.         self.view_ofs = '0 0 -20';
  867.     }
  868.     else
  869.     {
  870.         setmodel (self, gibname);
  871.         self.frame = 0;
  872.         self.nextthink = -1;
  873.         self.movetype = MOVETYPE_BOUNCE;
  874. //** PATCH_BEGIN - gibbin3 - Turrican ****
  875.         self.classname = "gib_head";
  876.         self.takedamage = DAMAGE_YES;
  877.         self.health = HEAD_HEALTH;
  878.         self.th_pain = SUB_SmallGib;
  879.         self.th_die = Head_die;
  880.         self.touch = WalkOnCorpse;
  881.         self.view_ofs = '0 0 8';
  882.         setsize (self, '-8 -8 0', '8 8 16');
  883.         self.velocity = VelocityForDamage (dm);
  884.         self.origin_z = self.origin_z - 24;
  885.         self.flags = self.flags - (self.flags & FL_ONGROUND);
  886.         self.avelocity = crandom() * '0 600 0';
  887. //** PATCH_END - gibbin3 - Turrican ******
  888.     }
  889. };
  890.  
  891. //** PATCH_BEGIN - gibbin3 - Turrican ****
  892. // GibPlayer is no longer used. Replaced by Corpse_die in corpse.qc
  893. //** PATCH_END - gibbin3 - Turrican ******
  894. void() GibPlayer =
  895. {
  896.     ThrowHead ("progs/h_player.mdl", self.health);
  897.     ThrowGib ("progs/gib1.mdl", self.health);
  898.     ThrowGib ("progs/gib2.mdl", self.health);
  899.     ThrowGib ("progs/gib3.mdl", self.health);
  900.  
  901.     self.deadflag = DEAD_DEAD;
  902.  
  903.     if (damage_attacker.classname == "teledeath")
  904.     {
  905.         sound (self, CHAN_VOICE, "player/teledth1.wav", 1, ATTN_NONE);
  906.         return;
  907.     }
  908.  
  909.     if (damage_attacker.classname == "teledeath2")
  910.     {
  911.         sound (self, CHAN_VOICE, "player/teledth1.wav", 1, ATTN_NONE);
  912.         return;
  913.     }
  914.  
  915.     if (random() < 0.5)
  916.         sound (self, CHAN_VOICE, "player/gib.wav", 1, ATTN_NONE);
  917.     else
  918.         sound (self, CHAN_VOICE, "player/udeath.wav", 1, ATTN_NONE);
  919. };
  920.  
  921. void() PlayerDie =
  922. {
  923.     local    float    i;
  924.  
  925. //** PATCH_BEGIN - morph2 - Turrican ****
  926.     if (self._die != SUB_Null)
  927.     {
  928.         self._die();
  929.         return;
  930.     }
  931. //** PATCH_END - morph2 - Turrican ******
  932.  
  933.     self.items = self.items - (self.items & IT_INVISIBILITY);
  934.     self.invisible_finished = 0;    // don't die as eyes
  935.     self.invincible_finished = 0;
  936.     self.super_damage_finished = 0;
  937.     self.radsuit_finished = 0;
  938.     self.modelindex = modelindex_player;    // don't use eyes
  939. //** PATCH_BEGIN - morph2 - Turrican ****
  940.     setmodel(self,"progs/player.mdl"); // In case he was morphed
  941.     setsize (self, VEC_HULL_MIN, VEC_HULL_MAX);
  942. //** PATCH_END - morph2 - Turrican ******
  943.  
  944.     if (deathmatch || coop)
  945.         DropBackpack();
  946.  
  947.     self.weaponmodel="";
  948.     self.view_ofs = '0 0 -8';
  949.     self.deadflag = DEAD_DYING;
  950. //** PATCH_BEGIN - gibbin3 - Turrican ****
  951. //    self.solid = SOLID_NOT;
  952. //** PATCH_END - gibbin3 - Turrican ******
  953.     self.flags = self.flags - (self.flags & FL_ONGROUND);
  954.     self.movetype = MOVETYPE_TOSS;
  955.     if (self.velocity_z < 10)
  956.         self.velocity_z = self.velocity_z + random()*300;
  957.  
  958. //** PATCH_BEGIN - gibbin3 - Turrican ****
  959. // Pass player size and head.mdl to Corpse_die using globals.
  960.     self.corpse_size = SIZE_MEDIUM;
  961.     self.head_gib_name = "progs/h_player.mdl";
  962. //** PATCH_END - gibbin3 - Turrican ******
  963.  
  964.     if (self.health < -40)
  965.     {
  966. //** PATCH_BEGIN - gibbin3 - Turrican ****
  967. //        GibPlayer ();
  968.         Corpse_die();
  969. //** PATCH_END - gibbin3 - Turrican ******
  970.         return;
  971.     }
  972.  
  973.     DeathSound();
  974.  
  975.     self.angles_x = 0;
  976.     self.angles_z = 0;
  977.  
  978. //** PATCH_BEGIN - grap109b - throwaxe - Turrican ****
  979.     if (self.weapon == IT_AXE || self.weapon == IT_THROWING_AXE ||
  980.         self.weapon == IT_MORNINGSTAR )
  981. //** PATCH_END - grap109b - throwaxe - Turrican ******
  982.     {
  983.         player_die_ax1 ();
  984. //** PATCH_BEGIN - gibbin3 - Turrican ****
  985. //        return;
  986.     }
  987.     else
  988.     {
  989.         i = cvar("temp1");
  990.         if (!i)
  991.             i = 1 + floor(random()*6);
  992.  
  993.         if (i == 1)
  994.             player_diea1();
  995.         else if (i == 2)
  996.             player_dieb1();
  997.         else if (i == 3)
  998.             player_diec1();
  999.         else if (i == 4)
  1000.             player_died1();
  1001.         else
  1002.             player_diee1();
  1003.     }
  1004. //** PATCH_END - gibbin3 - Turrican ******
  1005. };
  1006.  
  1007. void() set_suicide_frame =
  1008. {    // used by klill command and diconnect command
  1009.     if (self.model != "progs/player.mdl")
  1010.         return;    // allready gibbed
  1011.     self.frame = $deatha11;
  1012.     self.solid = SOLID_NOT;
  1013. //    self.movetype = MOVETYPE_TOSS;
  1014.     self.deadflag = DEAD_DEAD;
  1015.     self.nextthink = -1;
  1016. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1017.     setmodel(self, "");
  1018.     setsize (self, VEC_ORIGIN, VEC_ORIGIN);
  1019. //** PATCH_END - gibbin3 - Turrican ******
  1020. };
  1021.  
  1022.  
  1023. void()    player_diea1    =    [    $deatha1,    player_diea2    ] {};
  1024. void()    player_diea2    =    [    $deatha2,    player_diea3    ] {};
  1025. void()    player_diea3    =    [    $deatha3,    player_diea4    ] {};
  1026. void()    player_diea4    =    [    $deatha4,    player_diea5    ] {};
  1027. void()    player_diea5    =    [    $deatha5,    player_diea6    ] {};
  1028. void()    player_diea6    =    [    $deatha6,    player_diea7    ] {};
  1029. void()    player_diea7    =    [    $deatha7,    player_diea8    ] {};
  1030. void()    player_diea8    =    [    $deatha8,    player_diea9    ] {};
  1031. void()    player_diea9    =    [    $deatha9,    player_diea10    ] {};
  1032. void()    player_diea10    =    [    $deatha10,    player_diea11    ] {};
  1033. void()    player_diea11    =    [    $deatha11,    player_diea11 ]
  1034. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1035. {
  1036.     PlayerDead();
  1037.     MakePlayerCorpse (65, '-32 -32 -24', '32 32 -12');
  1038. };
  1039. //** PATCH_END - gibbin3 - Turrican ******
  1040.  
  1041. void()    player_dieb1    =    [    $deathb1,    player_dieb2    ] {};
  1042. void()    player_dieb2    =    [    $deathb2,    player_dieb3    ] {};
  1043. void()    player_dieb3    =    [    $deathb3,    player_dieb4    ] {};
  1044. void()    player_dieb4    =    [    $deathb4,    player_dieb5    ] {};
  1045. void()    player_dieb5    =    [    $deathb5,    player_dieb6    ] {};
  1046. void()    player_dieb6    =    [    $deathb6,    player_dieb7    ] {};
  1047. void()    player_dieb7    =    [    $deathb7,    player_dieb8    ] {};
  1048. void()    player_dieb8    =    [    $deathb8,    player_dieb9    ] {};
  1049. void()    player_dieb9    =    [    $deathb9,    player_dieb9    ]
  1050. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1051. {
  1052.     PlayerDead();
  1053.     MakePlayerCorpse (65, '-16 -16 -24', '16 16 -12');
  1054. };
  1055. //** PATCH_END - gibbin3 - Turrican ******
  1056.  
  1057. void()    player_diec1    =    [    $deathc1,    player_diec2    ] {};
  1058. void()    player_diec2    =    [    $deathc2,    player_diec3    ] {};
  1059. void()    player_diec3    =    [    $deathc3,    player_diec4    ] {};
  1060. void()    player_diec4    =    [    $deathc4,    player_diec5    ] {};
  1061. void()    player_diec5    =    [    $deathc5,    player_diec6    ] {};
  1062. void()    player_diec6    =    [    $deathc6,    player_diec7    ] {};
  1063. void()    player_diec7    =    [    $deathc7,    player_diec8    ] {};
  1064. void()    player_diec8    =    [    $deathc8,    player_diec9    ] {};
  1065. void()    player_diec9    =    [    $deathc9,    player_diec10    ] {};
  1066. void()    player_diec10    =    [    $deathc10,    player_diec11    ] {};
  1067. void()    player_diec11    =    [    $deathc11,    player_diec12    ] {};
  1068. void()    player_diec12    =    [    $deathc12,    player_diec13    ] {};
  1069. void()    player_diec13    =    [    $deathc13,    player_diec14    ] {};
  1070. void()    player_diec14    =    [    $deathc14,    player_diec15    ] {};
  1071. void()    player_diec15    =    [    $deathc15,    player_diec15 ]
  1072. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1073. {
  1074.     PlayerDead();
  1075.     MakePlayerCorpse (65, '-16 -16 -24', '16 16 -12');
  1076. };
  1077. //** PATCH_END - gibbin3 - Turrican ******
  1078.  
  1079. void()    player_died1    =    [    $deathd1,    player_died2    ] {};
  1080. void()    player_died2    =    [    $deathd2,    player_died3    ] {};
  1081. void()    player_died3    =    [    $deathd3,    player_died4    ] {};
  1082. void()    player_died4    =    [    $deathd4,    player_died5    ] {};
  1083. void()    player_died5    =    [    $deathd5,    player_died6    ] {};
  1084. void()    player_died6    =    [    $deathd6,    player_died7    ] {};
  1085. void()    player_died7    =    [    $deathd7,    player_died8    ] {};
  1086. void()    player_died8    =    [    $deathd8,    player_died9    ] {};
  1087. void()    player_died9    =    [    $deathd9,    player_died9    ]
  1088. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1089. {
  1090.     PlayerDead();
  1091.     MakePlayerCorpse (65, '-16 -16 -24', '16 16 -12');
  1092. };
  1093. //** PATCH_END - gibbin3 - Turrican ******
  1094.  
  1095. void()    player_diee1    =    [    $deathe1,    player_diee2    ] {};
  1096. void()    player_diee2    =    [    $deathe2,    player_diee3    ] {};
  1097. void()    player_diee3    =    [    $deathe3,    player_diee4    ] {};
  1098. void()    player_diee4    =    [    $deathe4,    player_diee5    ] {};
  1099. void()    player_diee5    =    [    $deathe5,    player_diee6    ] {};
  1100. void()    player_diee6    =    [    $deathe6,    player_diee7    ] {};
  1101. void()    player_diee7    =    [    $deathe7,    player_diee8    ] {};
  1102. void()    player_diee8    =    [    $deathe8,    player_diee9    ] {};
  1103. void()    player_diee9    =    [    $deathe9,    player_diee9    ]
  1104. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1105. {
  1106.     PlayerDead();
  1107.     MakePlayerCorpse (65, '-16 -16 -24', '16 16 -12');
  1108. };
  1109. //** PATCH_END - gibbin3 - Turrican ******
  1110.  
  1111. void()    player_die_ax1    =    [    $axdeth1,    player_die_ax2    ] {};
  1112. void()    player_die_ax2    =    [    $axdeth2,    player_die_ax3    ] {};
  1113. void()    player_die_ax3    =    [    $axdeth3,    player_die_ax4    ] {};
  1114. void()    player_die_ax4    =    [    $axdeth4,    player_die_ax5    ] {};
  1115. void()    player_die_ax5    =    [    $axdeth5,    player_die_ax6    ] {};
  1116. void()    player_die_ax6    =    [    $axdeth6,    player_die_ax7    ] {};
  1117. void()    player_die_ax7    =    [    $axdeth7,    player_die_ax8    ] {};
  1118. void()    player_die_ax8    =    [    $axdeth8,    player_die_ax9    ] {};
  1119. void()    player_die_ax9    =    [    $axdeth9,    player_die_ax9    ]
  1120. //** PATCH_BEGIN - gibbin3 - Turrican ****
  1121. {
  1122.     PlayerDead();
  1123.     MakePlayerCorpse (65, '-16 -16 -24', '16 16 -12');
  1124. };
  1125. //** PATCH_END - gibbin3 - Turrican ******
  1126.